![【iOSDC Japan 2023 レポート】「iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!」を聞いてきた。](https://devio2023-media.developers.io/wp-content/uploads/2023/08/iosdc_keyboard_extension.png)
【iOSDC Japan 2023 レポート】「iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!」を聞いてきた。
はじめに
年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。
せっかくなので、参加したセッションのレポートを書きたいと思います。
iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!
登壇者
概要
iOSのKeyboard Extensionは、ソフトウェアキーボードを独自に開発し、配布できる機能です。
キーボードを自作する上で大きな問題が日本語入力です。標準のAPIはないので、自力でどうにかする必要があります。
私はキーボードアプリ「azooKey」をiOSでリリースし、2年以上にわたって開発・運用を続けてきました。azooKeyでは日本語入力機能をSwiftで独自に実装しています。
さらに、「学習」「ユーザ辞書」「ライブ変換」「着せ替え」「キーのカスタマイズ」など、さまざまな便利な機能を実装し、多くの利用者に実用してもらえるレベルのアプリに仕上げています。
本トークでは、このazooKeyの開発・運用の経験から、日本語入力の仕組みやSwiftによる実装、さらにキーボードアプリにして配布する方法までを解説します。皆さんも日本語入力できるキーボードアプリを作ってみませんか!?
引用: fortee
資料
感想
個人でazookeyというキーボードアプリを開発されており、今回はその知見を共有していただけました。
日本語入力アプリを作るには、日本語入力エンジンを作成する必要があり、その作り方の説明が今回の主な内容でした。
日本語入力の方法としては、
- かな漢字変換
- Simple Kana to Kanji conversion programe
- 漢字直接入力
今回は、かな漢字変換を取り上げての説明でした。膨大な候補の中から頻出単語や適した単語を表示させる為に単語の優先度を上げる話はとても面白かったです。
漢字変換のアルゴリズムについては、普段あまり触れない部分で聞いていて面白かったです。
実際に、日本語エンジンを作成する為のサンプルプロジェクトも用意されていました。
それとは別に実用化のための実装を実施済みのSwift Package AzooKeyKanakanjiConverterも公開しており、今すぐにも試せる状態になっています。
セッション参加中には、次に作りたいもののアイデアが思いつき、脳汁が沢山出ていました。そんなとてもワクワクするようなセッションで非常に勉強になり、楽しかったです。
AzooKeyKanakanjiConverterを用いて、今度何か作らせていただきます。
おわりに
App Extensionには夢がある
iOSDC 2023 レポート関連
Day0
- 「タクシーアプリの多言語対応・ローカライズにおける課題と解決策」を聞いてきた。
- 「Appleにおけるプライバシーの全容を把握する」を聞いてきた。
- 「SwiftUIの進化についていくためにやったこと」を聞いてきた。
- 「SharePlayの歴史と進化 - そしてvisionOSへ」を聞いてきた。
- 「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。
Day1
- 「TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて」を聞いてきた。
- 「PushToTalkで作るトランシーバー」を聞いてきた。
- 「6年間運用したiOSアプリのリアーキテクトについて具体的に解説」を聞いてきた。
- 「Mastering SwiftSyntax」を聞いてきた。
- 「配信アプリのためのリアルタイムプッシュ通知ぼかしの夢 〜低負荷で高速なプライバシー保護を目指して」を聞いてきた。
- 「macOSで自分のカメラを作ってみよう – Core Media IO Extension」を聞いてきた。
- 基礎から理解する!来年春までに対応すべきプライバシーの変更点
- 「UIのブラックボックスを探る」を聞いてきた。
- 「なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか」を聞いてきた。
- 「正規表現を”微分”する!?爆速で自作できる正規表現エンジン」を聞いてきた。
- 「一般的な通信でも使えるバックグランドURLSessionの活用方法」を聞いてきた。
- 「SwiftUIでの非同期処理データの状態管理を考える」を聞いてきた。